package com.dragon.modules.yuegou.enums.marketing;

import com.fasterxml.jackson.annotation.JsonCreator;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 跳转类型
 * 
 * @author pbuilder generated
 *
 */
public enum AdvertisementType {

	/**
	 * 外链
	 */
	LINK(0, "外链"),
	/**
	 * 商品详情
	 */
	GOODS(1, "商品详情"),
	/**
	 * 助力商品详情
	 */
	ASSISTANCE(2, "助力商品详情"),
	/**
	 * 秒杀商品详情
	 */
	SECKILL(3, "秒杀商品详情"),
	/**
	 * 折扣商品详情
	 */
	DISCOUNT(4, "折扣商品详情"),
	/**
	 * 悦卡详情
	 */
	CARD(5, "悦卡详情"),
	/**
	 * 商品列表
	 */
	GOODSLIST(6, "商品列表"),
	/**
	 * 悦卡列表
	 */
	CARDLIST(7, "悦卡列表"),
	/**
	 * 优惠停车
	 */
	PARK(8, "优惠停车"),
	/**
	 * 悦店
	 */
	MERCHANT(9, "悦店"),
	/**
	 * 积分商城
	 */
	MARKECT(10, "积分商城"),
	/**
	 * 悦友
	 */
	FRIEND(11, "悦友"),
	/**
	 * 助力列表
	 */
	ASSISTANCELIST(12, "助力列表"),
	/**
	 * 秒杀列表
	 */
	SECKILLLIST(13, "秒杀列表"),
	/**
	 * 折扣列表
	 */
	DISCOUNTLIST(14, "折扣列表"),
	/**
	 * 生活缴费
	 */
	FEE(15, "生活缴费"),
	/**
	 * 拼团详情
	 */
	GROUPON(16, "拼团详情"),
	/**
	 * 拼团列表
	 */
	GROUPONLIST(17, "拼团列表"),
	/**
	 * 积分商品详情
	 */
	POINTDETAIL(18, "积分商品详情"),
	/**
	 * 套餐详情
	 */
	PACKAGE(19, "套餐详情"),
	/**
	 * 套餐列表
	 */
	PACKAGELIST(20, "套餐列表"),
	/**
	 * 线上抽奖详情
	 */
	ONLINELOT(21, "线上抽奖详情"),
	/**
	 * 线上抽奖列表
	 */
	ONLINELOTLIST(22, "线上抽奖列表"),
	/**
	 * 会员福利
	 */
	MEMBERGIFT(23, "会员福利"),
	/**
	 * 小程序
	 */
	XCX(24, "小程序"),
	/**
	 * 优惠券详情
	 */
	COUPON(25, "优惠券详情"),
	/**
	 * 小程序首页
	 */
	XCXHOME(26, "小程序首页"),
	/**
	 * 到家
	 */
	GOHOME(27,"到家"),
	/**
	 * 圈子
	 */
	CIRCLE(28,"圈子"),
	/**
	 * 个人
	 */
	PERSONAL(29,"个人"),
	/**
	 * 小票兑积分
	 */
	EXCHANGEPOINTS(30,"小票兑积分"),
	/**
	 * 签到领积分
	 */
	SIGNPOINTS(31,"签到领积分"),
	/**
	 * 红包卡券
	 */
	CARDCOUPON(32,"红包卡券"),
	/**
	 * 砍价列表
	 */
	BARGAININGLIST(33,"砍价列表"),
	/**
	 * 砍价详情
	 */
	BARGAINING(34,"砍价详情"),
	/**
	 * 悦店列表
	 */
	MERCHANTLIST(35,"悦店列表"),
	/**
	 * 悦店详情
	 */
	MERCHAN(36,"悦店详情"),
	/**
	 * 到家列表
	 */
	HOMELIST(37,"到家列表"),
	/**
	 * 到家详情
	 */
	HOME(38,"到家详情"),
	/**
	 * 直播列表
	 */
	LIVE(39,"直播列表"),
	/**
	 * 抽奖列表
	 */
	LOTTERYLIST(40,"抽奖列表"),
	/**
	 * 抽奖详情
	 */
	LOTTER(41,"抽奖详情"),
	/**
	 * 商圈服务
	 */
	BUSD(42,"商场服务"),
	/**
	 * 图片
	 */
	PICTURE(43,"图片"),

	/**
	 * 图片
	 */
	FREE(44,"免费商品/卷"),
	/**
	 * 直播详情
	 */
	LIVE_DETAIL(45,"直播详情");
	/**
	 * 枚举标识
	 */
	private final Integer code;

	/**
	 * 别名
	 */
	private final String alias;

	private AdvertisementType(Integer code, String alias) {
		this.code = code;
		this.alias = alias;
	}
	
	public Integer getValue() {
		return code;
	}

	/**
	 * 枚举标识
	 * 
	 * @return code
	 */
	public Integer getCode() {
		return code;
	}

	/**
	 * 别名
	 * 
	 * @return alias
	 */
	public String getAlias() {
		return alias;
	}

	/**
	 * 把code转化为费用类型枚举
	 * 
	 * @param code 代码
	 * @return
	 */
	@JsonCreator
	public static AdvertisementType from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for AdvertisementType
	 */
	private static final Map<Integer, AdvertisementType> CODE_MAP = Stream.of(AdvertisementType.values())
			.collect(Collectors.toMap(AdvertisementType::getCode, e -> e));

}
